Server-based computing allows a networked client computer, which may be remotely situated with respect to a server, to access computing resources on the server. Several protocols, such as Remote Desktop Protocol (RDP), Virtual Network Computing (VNC), or PC over IP (PCoIP), have been developed to enable server-based computing. Increasingly, server-based computing has become supported by a virtualized computing environment. One such example is virtual desktop infrastructure (VDI), which enables organizations to replace traditional personal computers (PCs) on the client side with instances of a desktop operating system that are hosted on virtual machines running on servers in a data center. A thin client that is installed on a user's terminal remotely connects to one of the virtual machines running the desktop operating system and presents a “virtual desktop” for the user.
In order to allow users of server-based computing to retain customizations of their desktops and provide them with a consistent desktop experience, various user profile management solutions, sometimes referred to as “persona management,” have been developed. One such solution is user profile backup and restore. With this solution, the user profile is saved to persistent storage when the user logs out and restored from the persistent storage when the user subsequently logs in. This solution, however, has some limitations. The first is a spike in input-output operations (IOs) during popular login and logout times, such as at the beginning and at the end of a work day. Second, the login and logout processes are delayed as the user must wait for his or her profile to be loaded into memory upon login and to be saved to persistent storage upon logout. Third, the solution relies on the user to logout to trigger an update of the user profile. Some users, however, do not always logout after completing a remote desktop session. In such cases, the user loses any changes to the user profile if the server hosting the remote desktop session should crash. Also, if the user launches another remote desktop session, the original user profile will be restored onto the desktop and the user will now have inconsistent user profiles across different remote desktop sessions.
To overcome the drawbacks of the user profile backup and restore techniques, a user profile streaming technique has been developed by VMware, Inc. of Palo Alto, Calif. According to this technique, when a user logs into a remote desktop session, the basic components of the user's profile are first loaded. Other components of the user's profile are subsequently loaded on an as-needed basis, e.g., as they are accessed by the user. In addition, the user profile is updated in persistent storage as the components of the user profile are being updated during the remote desktop session. As a result, IO spikes are avoided and the login and logout processes take less time.